package lambda;

import java.util.Arrays;

public class 方法的引用1_4 {
	public static void main(String[] args) {
		String[] strings = new String[] { "11", "111", "1" };
		// 对象：：实例方法
		a a=System.out::println; //方法引用
		a.show("b");
		// 类：：静态方法
//		Math::pow 方法引用等同于低通方法参数的lambda表达式
		// 类：：实例方法 第一个参数会成为执行方法的对象，第二个成为入参
		Arrays.sort(strings, String::compareToIgnoreCase);
		Arrays.sort(strings, (x, y) -> x.compareToIgnoreCase(y));
		ConcurrentGreeter cg=new ConcurrentGreeter();
		cg.greet();
	}
}
interface a{
	public void show(String a);
}
class Greeter{
	public void greet(){
		System.out.println("Hello,world!");
	}
}
class ConcurrentGreeter extends Greeter{
	public void greet(){
		//super::实例方法，会使用this作为执行方法的对象，并调用父类中指定的方法
		Thread t=new Thread(super::greet);
		t.start();
	}
}